#include "game.h"
#include<bits/stdc++.h>
using namespace std;
mt19937 g(time(0));
vector<int> guess(int n,int Q){
  vector<int> p(n);
  iota(p.begin(),p.end(),1);
  if(n<=9){
    do{
      if(count(p)==n)break;
    }while(next_permutation(p.begin(),p.end()));
    return p;
  }
  uniform_int_distribution<> u(0,n-1);
  shuffle(p.begin(),p.end(),g);
  int r=count(p);
  if(Q>=1e5){
    for(int i=1;i<Q&&r<n;i++){
      int x=u(g),y=u(g);
      while(x==y)y=u(g);
      swap(p[x],p[y]);
      int c=count(p);
      if(c>r)r=c;
      else if(c<r||g()&1)swap(p[x],p[y]);
    }
  }
  else{
    vector<int> v(n);
    iota(v.begin(),v.end(),0);
    for(int i=1;i<Q&&r<n;i++){
      int x=g()%v.size(),y=g()%v.size();
      while(x==y)y=g()%v.size();
      swap(p[x=v[x]],p[y=v[y]]);
      int c=count(p);
      if(c>r)r=c;
      else if(c<r||g()&1){
        swap(p[x],p[y]);
        if(c==r-2){
          v.erase(find(v.begin(),v.end(),x));
          v.erase(find(v.begin(),v.end(),y));
        }
      }
    }
  }
  if(r<n)while(1);
  return p;
}